package com.hyh.eblog.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hyh.eblog.entity.Post;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hyh.eblog.vo.CollectionVo;
import com.hyh.eblog.vo.PostVo;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Summerday
 * @since 2020-10-19
 */
public interface PostService extends IService<Post> {

    /**
     * 获取PostVo的分页信息
     * @param page 分页信息
     * @param categoryId 分类id
     * @param userId 用户id
     * @param level 置顶等级
     * @param recommend 是否精选
     * @param order 排序字段
     * @return PostVo分页信息
     */
    IPage<PostVo> paging(Page page, Long categoryId, Long userId, Integer level, Boolean recommend, String order);

    /**
     * 查询文章信息
     * @param wrapper 条件
     * @return 文章信息
     */
    PostVo selectOnePost(QueryWrapper<Post> wrapper);

    /**
     * 初始化本周热议
     */
    void initWeekRank();

    void incrCommentCountAndUnionForWeekRank(long postId,boolean isIncr);

    void setViewCount(PostVo postVo);


    IPage<CollectionVo> paging(Page page, Long userId);
}
